home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / gnumake / make360.zoo / make.h < prev    next >
C/C++ Source or Header  |  1991-08-07  |  5KB  |  221 lines

  1. /* Copyright (C) 1988-1991 Free Software Foundation, Inc.
  2. This file is part of GNU Make.
  3.  
  4. GNU Make is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 1, or (at your option)
  7. any later version.
  8.  
  9. GNU Make is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. GNU General Public License for more details.
  13.  
  14. You should have received a copy of the GNU General Public License
  15. along with GNU Make; see the file COPYING.  If not, write to
  16. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  17.  
  18. /* Some nonconformant attempt at a 1003.1
  19.    implementation needs this for `pid_t'.  */
  20. #ifdef    _POSIX_SOURCE
  21. #include <sys/types.h>
  22. #endif
  23.  
  24. #include <signal.h>
  25.  
  26. #if    !defined(NSIG) && defined(_NSIG)
  27. #define    NSIG    _NSIG
  28. #endif
  29.  
  30. #ifdef    __STDC__
  31. #define    SIGHANDLER    void *
  32. #else
  33. #define    SIGHANDLER    int (*)()
  34. #endif
  35. #define    SIGNAL(sig, handler)    ((SIGHANDLER) signal((sig), (handler)))
  36.  
  37. #ifndef    sigmask
  38. #define    sigmask(sig)    (1 << ((sig) - 1))
  39. #endif
  40.  
  41. #include <stdio.h>
  42.  
  43. #include <sys/param.h>
  44. #ifndef MAXPATHLEN
  45. #define MAXPATHLEN 1024
  46. #endif    /* No MAXPATHLEN.  */
  47.  
  48. #include <sys/stat.h>
  49.  
  50. #ifndef    S_ISREG
  51. #define    S_ISREG(mode)    (((mode) & S_IFMT) == S_IFREG)
  52. #endif
  53. #ifndef    S_ISDIR
  54. #define    S_ISDIR(mode)    (((mode) & S_IFMT) == S_IFDIR)
  55. #endif
  56.  
  57.  
  58. #if    (defined (STDC_HEADERS) || defined (__GNU_LIBRARY__) \
  59.      || defined (_POSIX_SOURCE))
  60. #include <stdlib.h>
  61. #include <string.h>
  62. #define    ANSI_STRING
  63. #else    /* No standard headers.  */
  64.  
  65. #ifdef    USG
  66.  
  67. #include <string.h>
  68. #include <memory.h>
  69. #define    ANSI_STRING
  70.  
  71. #else    /* Not USG.  */
  72. #include <strings.h>
  73.  
  74. extern int bcmp ();
  75. extern void bzero (), bcopy ();
  76.  
  77. #endif    /* USG.  */
  78.  
  79. extern char *malloc (), *realloc ();
  80. extern void free ();
  81.  
  82. #endif    /* Standard headers.  */
  83.  
  84. #ifdef    ANSI_STRING
  85. #define    index(s, c)    strchr((s), (c))
  86. #define    rindex(s, c)    strrchr((s), (c))
  87.  
  88. #define bcmp(s1, s2, n)    memcmp ((s1), (s2), (n))
  89. #define bzero(s, n)    memset ((s), 0, (n))
  90. #define bcopy(s, d, n)    memcpy ((d), (s), (n))
  91. #endif    ANSI_STRING
  92. #undef    ANSI_STRING
  93.  
  94.  
  95. #ifdef    __GNUC__
  96. #ifndef    alloca
  97. #define    alloca(n)    __builtin_alloca (n)
  98. #endif
  99. #else    /* Not GCC.  */
  100. #ifdef    sparc
  101. #include <alloca.h>
  102. #else    /* Not sparc.  */
  103. extern char *alloca ();
  104. #endif    /* sparc.  */
  105. #endif    /* GCC.  */
  106.  
  107. #ifndef    iAPX286
  108. #define streq(a, b) \
  109.   ((a) == (b) || \
  110.    (*(a) == *(b) && (*(a) == '\0' || !strcmp ((a) + 1, (b) + 1))))
  111. #else
  112. /* Buggy compiler can't handle this.  */
  113. #define streq(a, b) (strcmp ((a), (b)) == 0)
  114. #endif
  115.  
  116. /* Add to VAR the hashing value of C, one character in a name.  */
  117. #define    HASH(var, c) \
  118.   ((var += (c)), (var = ((var) << 7) + ((var) >> 20)))
  119.  
  120. #if defined(__GNUC__) || defined(ENUM_BITFIELDS)
  121. #define    ENUM_BITFIELD(bits)    :bits
  122. #else
  123. #define    ENUM_BITFIELD(bits)
  124. #endif
  125.  
  126. extern void die ();
  127. extern void message (), fatal (), error ();
  128. extern void pfatal_with_name (), perror_with_name ();
  129. extern char *savestring (), *concat ();
  130. extern char *xmalloc (), *xrealloc ();
  131. extern char *find_next_token (), *next_token (), *end_of_token ();
  132. extern void collapse_continuations (), remove_comments ();
  133. extern char *sindex (), *lindex ();
  134. extern int alpha_compare ();
  135. extern void print_spaces ();
  136. extern struct dep *copy_dep_chain ();
  137. extern char *find_percent ();
  138.  
  139. #ifndef    NO_ARCHIVES
  140. extern int ar_name ();
  141. extern void ar_name_parse ();
  142. extern int ar_touch ();
  143. extern time_t ar_member_date ();
  144. #endif
  145.  
  146. extern void dir_load ();
  147. extern int dir_file_exists_p (), file_exists_p (), file_impossible_p ();
  148. extern void file_impossible ();
  149. extern char *dir_name ();
  150.  
  151. extern void set_default_suffixes (), install_default_implicit_rules ();
  152. extern void convert_to_pattern (), count_implicit_rule_limits ();
  153. extern void create_pattern_rule ();
  154.  
  155. extern void build_vpath_lists (), construct_vpath_list ();
  156. extern int vpath_search ();
  157.  
  158. extern void construct_include_path ();
  159. extern void uniquize_deps ();
  160.  
  161. extern int update_goal_chain ();
  162. extern void notice_finished_file ();
  163.  
  164. extern void user_access (), make_access ();
  165.  
  166.  
  167. extern int glob_pattern_p ();
  168. extern char **glob_filename ();
  169.  
  170. #ifdef    __GNU_LIBRARY__
  171.  
  172. #include <unistd.h>
  173.  
  174. #else
  175.  
  176. #ifndef    USG
  177. extern int sigsetmask ();
  178. #endif
  179. #ifndef    _POSIX_SOURCE
  180. extern int kill ();
  181. #endif
  182. extern int sigblock ();
  183. extern void abort (), exit ();
  184. extern int unlink (), stat ();
  185. extern void qsort ();
  186. extern int atoi ();
  187. extern int pipe (), close (), read ();
  188. extern long int lseek ();
  189. extern char *ctime ();
  190.  
  191. extern char **environ;
  192.  
  193. #ifdef    USG
  194. extern char *getcwd ();
  195. #define    getwd(buf)    getcwd (buf, MAXPATHLEN - 2)
  196. #else    /* Not USG.  */
  197. extern char *getwd ();
  198. #endif    /* USG.  */
  199. #endif
  200.  
  201.  
  202. extern char *reading_filename;
  203. extern unsigned int *reading_lineno_ptr;
  204.  
  205. extern int just_print_flag, silent_flag, ignore_errors_flag, keep_going_flag;
  206. extern int debug_flag, print_data_base_flag, question_flag, touch_flag;
  207. extern int env_overrides, no_builtin_rules_flag, print_version_flag;
  208. extern int print_directory_flag;
  209.  
  210. extern unsigned int job_slots;
  211. extern double max_load_average;
  212.  
  213. extern char *program;
  214.  
  215. extern unsigned int makelevel;
  216.  
  217.  
  218. #define DEBUGPR(msg)                            \
  219.   if (debug_flag) { print_spaces (depth); printf (msg, file->name);    \
  220.             fflush (stdout);  } else
  221.